package com.zhoujian.creational;

/**
 * 静态内部类的方式实现单例
 * @author 周健
 * @creatTime 2023-09-04
 */

public class InnerSingleton {
    //1.构造器私有化
    private InnerSingleton(){}

    //2.提供一个方法获取单例对单项
    public InnerSingleton getInstance(){//如果没有调用getInstance方法，这个InnerSingleton这个类就不会加载，也就不会使用到InnerSingeltonHolder这个内部类里面
        return InnerSingletonHolder.instance;
    }

    //3.定义内部类来持有实例
    //特性：类加载的时机------》一个雷会在第一次主动使用的时候被加载
    //实例会在内部类加载的时候，也就是getInstance的时候会创建
    private static class  InnerSingletonHolder{
        private static final InnerSingleton instance = new InnerSingleton();

    }
}
